/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejerciciofichero;

import java.util.Scanner;

/**
 *
 * @author AdminLocal
 */
public class InterfazConsolaAgenda
{

    private boolean continuar = true;
    private Copista gestor;
    private final int OPCION_MAXIMA = 5;

    public InterfazConsolaAgenda()
    {
        gestor = new Copista();
        int opcion = 0;
        do
        {
            mostrarMenu();
            opcion = seleccionarOpcion();
            ejecutarTarea(opcion);
        // ejecutarTarea(seleccionarOpcion());
        } while (continuar);
    }

    private void cargarFichero()
    {
        gestor.cargarFichero(obtenerNombreArchivo());
    }

    private void crearNuevoFichero()
    {
        gestor.crearNuevoFichero(obtenerNombreArchivo());

    }

    private void guardarFichero()
    {
        gestor.guardarFichero(obtenerNombreArchivo());

    }

    private String obtenerNombreArchivo()
    {
        System.out.print("Introduzca el nombre del archivo: ");
        Scanner lector = new Scanner(System.in);
        return lector.nextLine();
    }

    private void mostrarMenu()
    {
        System.out.println("**************************");
        System.out.println("* 0 - Salir");
        System.out.println("* 1 - Cargar Fichero");
        System.out.println("* 2 - Guardar Fichero");
        System.out.println("* 3 - Crear Nuevo Fichero");
        System.out.println("**************************");
    }

    private void ejecutarTarea(int opcion)
    {
        switch (opcion)
        {
            case 0:
                continuar = false;
                break;
            case 1:
                cargarFichero();
                break;
            case 2:
                guardarFichero();
                break;
            case 3:
                crearNuevoFichero();
                break;
            default:
                // codigo
                break;
        }
    }

    private int seleccionarOpcion()
    {
        int opcion = -1;
        Scanner lector = new Scanner(System.in);
        lector.useDelimiter("\n");
        do
        {
            System.out.print("Por favor, introduzca una opcion: ");
            if (lector.hasNextInt())
            {
                opcion = lector.nextInt();
                if (opcion < 0 || opcion > OPCION_MAXIMA)
                {
                    opcion = -1;
                }
            } else
            {
                lector.next();
            }
        } while (opcion == -1);
        return opcion;
    }
}
